//------------------------------------------------------------------------------
//
// Generic Brick Test Types
//
//  Written Jan-2008 by Trevor Taylor, Software Technology, Australia
//
//------------------------------------------------------------------------------

using Microsoft.Ccr.Core;
using Microsoft.Dss.Core.Attributes;
using Microsoft.Dss.ServiceModel.Dssp;
using System;
using System.Collections.Generic;
using W3C.Soap;
using genericbricktest = ProMRDS.Robotics.GenericBrickTest;

using brick = ProMRDS.Robotics.GenericBrick.Proxy;


namespace ProMRDS.Robotics.GenericBrickTest
{
    
    
    /// <summary>
    /// GenericBrickTest Contract class
    /// </summary>
    public sealed class Contract
    {
        
        /// <summary>
        /// The Dss Service contract
        /// </summary>
        public const String Identifier = "http://www.promrds.com/contracts/2008/01/genericbricktest.html";
    }
    
    /// <summary>
    /// The GenericBrickTest State
    /// </summary>
    [DataContract()]
    public class GenericBrickTestState
    {
        [DataMember]
        public bool[] Status = new bool[19];

        [DataMember]
        public int NotificationCount;

        [DataMember]
        public brick.GenericBrickState BrickState;

    }
    
    /// <summary>
    /// GenericBrickTest Main Operations Port
    /// </summary>
    [ServicePort()]
    public class GenericBrickTestOperations : PortSet<DsspDefaultLookup, DsspDefaultDrop, Get>
    {
    }
    
    /// <summary>
    /// GenericBrickTest Get Operation
    /// </summary>
    public class Get : Get<GetRequestType, PortSet<GenericBrickTestState, Fault>>
    {
        
        /// <summary>
        /// GenericBrickTest Get Operation
        /// </summary>
        public Get()
        {
        }
        
        /// <summary>
        /// GenericBrickTest Get Operation
        /// </summary>
        public Get(Microsoft.Dss.ServiceModel.Dssp.GetRequestType body) : 
                base(body)
        {
        }
        
        /// <summary>
        /// GenericBrickTest Get Operation
        /// </summary>
        public Get(Microsoft.Dss.ServiceModel.Dssp.GetRequestType body, Microsoft.Ccr.Core.PortSet<GenericBrickTestState,W3C.Soap.Fault> responsePort) : 
                base(body, responsePort)
        {
        }
    }
}
